02. 설계 첫걸음

📌 Contents

📌 의도를 분명히 전달할 수 있는 이름 설계하기

  • 변수의 이름을 짧게 줄이면, 구현을 조금이라도 빠르게 할 수 있을지도 모름
  • 하지만 다른 사람이 코드를 읽거나 시간이 지난 후 다시 볼 때는 읽고 이해하기 매우 어려움
  • 처음 구현할 때 아낀 시간의 몇 배, 몇 십배 이상이 더 필요할 수 있음
  • 자주 바뀔 가능성이 있는 코드를 구현할 때는 '변수 이름을 쉽게 붙이는 것'도 아주 훌륭한 기본 설계가 될 수 있음

📌 목적별로 변수를 따로 만들어 사용하기

  • 변수에 값을 다시 할당하는 것을 재할당이라고 함
  • 재할당은 변수의 용도가 바뀌는 문제를 일으키기 쉬움
  • 재할당으로 기존의 변수를 다시 사용하지 말고, 목적별로 변수를 만들어 사용하면 전체적으로 '어떤 값을 계산하는 데 어떤 값을 사용하는지' 관계를 파악하기 쉬워짐

📌 단순 나열이 아니라, 의미 있는 것을 모아 메서드로 만들기

  • 계산 로직들이 단순하게 나열되어 있으면, 로직이 어디에서 시작해서 어디에서 끝나는지, 무슨 일을 하는지 알기 어려움
  • 이런 상황을 막으려면, 의미 있는 로직을 모아서 메서드(함수)로 구현하는 것이 좋음


  • 언급한 세 가지 방법을 적용하면 같은 결과를 얻을 수 있는 로직이여도 코드의 양은 많아지겠지만, 일고 이해하기는 훨씬 쉬워질 것임
  • 유지 보수와 변경이 쉽도록 변수의 이름과 로직을 신경 써서 작성하는 것이 곧 설계임

📌 관련된 데이터와 로직을 클래스로 모으기

  • '변수'와 '변수를 조작하는 로직'이 계속해서 이곳저곳에 만들어지면, 프로그램 규모가 커지면 관련된 로직을 찾아 돌아다니는 시간이 엄청날 것임
  • 변수에 잘못된 값이 뒤섞여 들어갈 수도 있음
  • 이러한 문제를 해결해 주는 것이 클래스(: 데이터를 인스턴스 변수로 갖고, 인스턴스 변수를 조작하는 메서드를 함께 모아 놓은 것)
  • 어떠한 클래스는 만든 의도와 관련된 로직을 담고 있음
  • 서로 밀접한 데이터와 로직을 한곳에 모아 두면, 이곳저곳 찾아 다니지 않아도 괜찮음
  • 또한 클래스의 생성자에 잘못된 값을 거부하는 로직을 넣어 잘못된 값이 유입되지 않게 만들면, 조금이라도 버그로부터 안전한 클래스 구조가 될 것임
  • 의도를 갖고 적절하게 설계하면, 유지 보수와 변경이 쉬워짐

results matching ""

    No results matching ""